home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
076-100
/
disk_098
/
thai
/
rmdup.c
< prev
next >
Wrap
C/C++ Source or Header
|
1992-05-06
|
1KB
|
73 lines
#include "quiz.h"
struct thai_phrase * chosen_sentence;
struct thai_phrase * chosen_word;
int file_changed = FALSE;
struct thai_phrase sentence_head;
struct thai_phrase word_head;
char scan_buf[ 3 ][ MAX_STRING ];
struct thai_phrase scan = {
&scan_buf[0][0] , &scan_buf[1][0] , &scan_buf[2][0] , 0 , 0
};
main ()
{
if ( load_phrases () ) {
rm_dup ( &sentence_head , "sentence" );
rm_dup ( &word_head , "word" );
}
else
puts ( "Failed to load phrases" );
unload_phrases ();
}
rm_dup ( head , desc )
struct thai_phrase *head;
char *desc;
{
struct thai_phrase *p , *q , *next;
int num_duplicates , num_deletions;
num_duplicates = 0;
num_deletions = 0;
for ( p = head->next; p != NULL && p->next != NULL; p = p->next ) {
for ( q = p->next; q != NULL; q = next ) {
next = q->next;
switch ( same ( p , q ) ) {
case 0 : /* different */
break;
case 1 :
num_duplicates++;
break;
case 2 :
del_phrase ( head , q );
file_changed = TRUE;
num_deletions++;
}
}
}
printf ( "%d duplicate %ss removed\n" , num_deletions , desc );
printf ( "%d duplicate %ss not removed\n" , num_duplicates , desc );
}
same ( p , q )
struct thai_phrase *p , *q;
{
if ( strcmp ( p->thai , q->thai ) == 0 ) {
if ( strcmp ( p->phonetic , q->phonetic ) == 0
&& strcmp ( p->english , q->english ) == 0 )
return ( 2 ); /* identical */
return ( 1 ); /* same word, different description */
}
return ( 0 ); /* different word */
}